﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Security;
using System.Globalization;
using System.Threading;

namespace SampleWebsite
{
	// Note: For instructions on enabling IIS6 or IIS7 classic mode, 
	// visit http://go.microsoft.com/?LinkId=9394801

	public class MvcApplication : System.Web.HttpApplication
	{
		public static void RegisterRoutes( RouteCollection routes )
		{
			routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );

			routes.MapRoute(
				"Default",                                              // Route name
				"{controller}/{action}/{id}",                           // URL with parameters
				new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
			);

		}

		protected void Application_Start()
		{
            AreaRegistration.RegisterAllAreas();
            RegisterRoutes(RouteTable.Routes);
        }

		protected void Application_AuthenticateRequest()
		{
			if (HttpContext.Current.User != null)
				Membership.GetUser(true);
		}

        protected void Application_AcquireRequestState(object sender, EventArgs e)
        {
            var request = HttpContext.Current.Request;
            if (HttpContext.Current.Session != null)
            {
                CultureInfo ci = (CultureInfo)this.Session["Language"];

                if (ci == null)
                {
                    string lang = "ru";
                    if (request.UserLanguages != null && request.UserLanguages.Length != 0)
                    {
                        lang = request.UserLanguages[0].Substring(0, 2);
                    }
                    ci = new CultureInfo(lang);
                    this.Session["Language"] = ci;
                }
                Thread.CurrentThread.CurrentUICulture = ci;
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);
            }
        }
	}
}